import os
import csv
import logging

#这段代码定义了一个实用函数 save_csv()，用于将爬虫抓取的数据以 CSV 格式保存到本地
def save_csv(datalist, csv_path, headers):
    # 若存在文件，那么覆盖
    if os.path.exists(csv_path):
        os.remove(csv_path)

    try:
        with open(csv_path, 'w', newline='', encoding='utf-8-sig') as csv_file:
            writer = csv.writer(csv_file)
            writer.writerow(headers)

            for i, data in enumerate(datalist, 1):
                print(f"正在写入第 {i} 条csv数据")

                # 处理每个字段，确保没有换行符和多余空格
                cleaned_data = [
                    str(field)
                    .replace('\n', '，')
                    .replace('\r', '，')
                    .replace('<br>', '，')
                    .replace(' ', '')
                    .strip() for field in data
                ]
                writer.writerow(cleaned_data)

        print(f"数据已成功保存到 {csv_path}")
    except Exception as e:
        logging.error(f"保存CSV文件时出错: {e}")
        print(f"保存CSV文件时出错: {e}")